package com.liao.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liao.dto.LoginDTO;
import com.liao.dto.RegisterDTO;
import com.liao.entity.User;

/**
 * 用户服务接口
 */
public interface UserService extends IService<User> {

    /**
     * 用户登录
     *
     * @param loginDTO 登录信息
     * @return 登录成功的用户信息
     */
    User login(LoginDTO loginDTO);

    /**
     * 用户注册
     *
     * @param registerDTO 注册信息
     * @return 注册成功的用户信息
     */
    User register(RegisterDTO registerDTO);

    /**
     * 分页查询用户列表
     *
     * @param page     分页参数
     * @param username 用户名（可选）
     * @param name     姓名（可选）
     * @param role     角色（可选）
     * @return 分页用户列表
     */
    Page<User> getUserPage(Page<User> page, String username, String name, String role);

    /**
     * 修改用户状态
     *
     * @param id     用户ID
     * @param status 状态：0-禁用，1-正常
     * @return 是否成功
     */
    boolean updateStatus(Long id, Integer status);

    /**
     * 重置密码
     *
     * @param id 用户ID
     * @return 是否成功
     */
    boolean resetPassword(Long id);
}